UNIFACE Seven - an Introduction

Against the backdrop of the CU2 European conference this month, Compuware will introduce UNIFACE Seven, a significant new version that enables developers to build and deploy complex business-critical applications. UNIFACE Seven features enhanced application modeling, a new deployment architecture providing component-based partitioning and support for Internet deployment, and special aids to jump-start development.

Informing our customers about UNIFACE Seven is a priority for us and so in this edition of UNIFACE TECH you will find information on the following areas of functionality:

  • Non Modal Forms

  • WebEnabler

  • Mainframe Database Drivers

In addition, the following article outlines the major changes made to the development and deployment environments in UNIFACE Seven.

Development

UNIFACE uses a Business-Model Driven Development paradigm. Model-driven development is based on a three-stage process:

Modeling. The first stage involves building the application model, which is the heart of the application.

Construction. The model is then enriched with business rules in events (triggers) and constraints and, from those, common application components such as forms and reports are constructed.

Assembly. At the final stage, the components are assembled into the finished application.

In UNIFACE Six every component was a form, an interactive form, a hidden or batch form or a report form. In UNIFACE Seven a clear distinction is made between each of these components. The reason for this change is twofold. For productivity reasons, a new application object, the UNIFACE Service, has been introduced. This allows entities to be grouped into a more business-oriented object with a user defined interface that can be used and re-used by forms. To be able to support true dynamic and transparent partitioning at deployment time, a clear split between application logic and user interface logic was needed. Therefore the following components are implemented in UNIFACE Seven:

  • Forms

Forms will gradually move from being large components that contain both user interface logic and application logic to more lightweight components that contain just user interface logic. In the deployment environment, forms will always be executed on the local client.

  • Services

Services will have no user interface definition and will therefore only contain application logic, not presentation logic. Forms and services provide a clear split between application logic and presentation logic which will result in the ability to execute application logic (i.e. services) on remote application servers.

  • Reports

Reports are a combination of forms and services. They have both a user interface definition and the ability to be executed on a remote application server. This provides the ability to off-load batch print processes to a remote server while continuing to execute the application.

Forms, services and reports are UNIFACE Components and make up the actual application. In addition to the current (Form level) triggers which are now Component level triggers, a new interface has been introduced to Forms, Services and Reports, the ‘Operations’. Operations are like local entries but extended with parameter support and support for local variables. The new ‘activate’ Proc instruction is introduced to activate a UNIFACE Component with a specific operation.

Deployment

Universal Deployment Architecture (UDA)

UNIFACE has always been independent of underlying technologies such as hardware, DBMS, CASE tools and networks. Now UNIFACE Seven is also independent of underlying architectures such as host-based and client/server. The introduction of the Universal Deployment Architecture makes this possible. In addition to the architectures already supported by UNIFACE, the UDA supports dynamic multi-tier client/server and the Internet.

Four key products make up the Universal Deployment Architecture:

  • UNIFACE PolyServer: UNIFACE’s file and data access server

  • UNIFACE Application Server: a new distributed application server

  • UNIFACE WebEnabler: that supports Internet deployment

  • UNIFACE Name Server: for easy maintenance of large distributed system environments

In UNIFACE Seven, the UNIFACE kernel is split up into two parts, one part that manages user interface objects like forms, menus and dialogs and another part that is responsible for executing UNIFACE Services and Reports. A new product, the UNIFACE Application Server will be introduced to support a distributed UNIFACE environment. Because Services and Reports are the components of the application, we now talk about ‘component-based partitioning’. Component-based partitioning helps organizations make better and more dynamic use of their processing resources, reduce network load and improve application performance and scalability. The service and report components can be executed either on a local client or across multiple servers. The actual node (or partition) that will execute the component is determined in the assignment file, similar to how the location of forms (.frm files) is currently specified in the assignment file in UNIFACE Six. To aid maintenance, the UNIFACE Name Server keeps a centralized list of components and their execution paths, enabling local clients to request the Name Server where to execute a specific component.

Changes to deployment architecture (the partitioning scheme) can be made at deployment time and do not need to be anticipated during development. This provides a fully transparent distributed environment that allows UNIFACE users to scale their applications to meet their specific needs, without having to go back to the development environment. By extending the UNIFACE deployment capabilities to multi-tier environments and the Internet/ Intranet, UNIFACE is now capable of supporting all major deployment architectures.

The Introduction of Asynchronous Processing

In UNIFACE Seven a component can be used synchronously or asynchronously. In synchronous mode, every activation of an operation within the component is handled immediately while the calling component is waiting. Input and output parameter passing can be used. In asynchronous, each ‘activate’ of an operation is queued for execution on the application partition that will run the component. The calling component continues immediately. This allows UNIFACE to better handle the demands of business-critical applications.

Delivery

Component Templates

One of the features sought after in modern development tools is the ability to ‘inherit’ code. UNIFACE has provided dynamic inheritance for a long time through the UNIFACE Application Model. UNIFACE Seven goes further by providing a feature called Component Templates. Developers can now create a Template and generate Instances. If the Template changes later on, the Instances will also be updated. As a result, developers are able to maintain the look, as well as the standards, of their forms more easily. Component Templates can be used on Forms, Reports, or Services. The type of template created for each of these components will be different: Forms are for interaction with the end-user and may therefore contain a Panel; Services are transparent to the user, so Panels are not used; Reports are likely to contain Headers and Trailers. Component Templates complement the way many users develop applications with UNIFACE today. While developers can continue to use the Application Model to capture all business rules and definitions, they can now use Templates to specify the ‘generic behavior’ of particular form types. For example, in the case of Form Templates, a unique Template could be built for ‘index forms’ where the form abides by the particular standards imposed by the developer (e.g. index forms could be all ‘read only’ forms, with data automatically retrieved into it).

Component Templates bring many advantages:

  • Form Templates - allow developers to build forms with a consistent look and feel.

  • Dialog Driven Screens - make form development more friendly and rapid.

  • Constants - make proc code easier to interpret and faster to run.

  • Generic Entity - allows any entity to be used in Form Templates.

Instances - are compiled so that templates do not have to be loaded into memory when they are run. This will make them run much faster.

Changes to the Developer’s Environment

In addition to providing the developer with a series of powerful new features, one of the major goals of UNIFACE Seven is to provide the developer with a new and exciting UNIFACE Development Environment (UDE).

Start-up Screen

In UNIFACE Seven, a start-up form has been substituted with a workspace, an environment developers can understand and easily use to enter the different areas of the development environment.

Abstract Metaphor

One of the most distinctive features of the new environment is the way it is presented. Rather than a ‘real world metaphor’ (i.e. an icon of a printer which represents the print option etc.), the UNIFACE Development Environment uses an ‘abstract metaphor’. There are many reasons for this. UNIFACE, like other tools, uses logical rather than real-world concepts such as model, trigger, service etc. In addition, the ‘abstract’ approach enables icons to be combined (e.g. form icon + entity icon = form entity) to visually explain to the developer what they are currently working on.

Hierarchical Order

The Developer workspace is presented in a hierarchical way (e.g. Library-Model-Entity-Trigger) so that it is clear how each of these abstract concepts relate to each other. It also allows developers to navigate through the UDE at the logical level of their choice.

Hotspots and Shortcuts

The UNIFACE Development Environment now has one hotspot to enable easy navigation between the two main workspaces - Development and Deployment. Developers can create ‘shortcuts’ when working on a form so it immediately appears in their Development workspace allowing easy and quick access to the objects they prefer. In this way, developers can customize their Development Environment.

The above covers just a few of the significant changes in UNIFACE Seven. In future editions of UNIFACE TECH, more information will be provided to help you become more familiar with both the new concepts and the benefits they bring to developers today.


Copyright 1996 Compuware Corporation. All Rights Reserved. Questions or comments about this site, E-mail us at www@compuware.com.